// 云函数入口文件
const cloud = require('wx-server-sdk')
const crypto = require('crypto')

cloud.init({ env: 'cloud1-2ga6780q302b7f4a' }) // 指定云环境ID
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  // 这里可以添加一个安全码，防止任何人都可以调用此接口
  const { securityCode, username, password } = event
  
  // 检查安全码是否正确（实际项目中应使用环境变量或其他更安全的方式）
  const expectedSecurityCode = 'outdoor_equipment_init_2023'
  
  if (securityCode !== expectedSecurityCode) {
    return {
      code: -1,
      message: '安全码错误，无权初始化管理员账户'
    }
  }
  
  try {
    // 检查是否已经存在管理员账户
    const { total } = await db.collection('admins').count()
    
    if (total > 0) {
      return {
        code: -1,
        message: '管理员账户已经存在，不能重复初始化'
      }
    }
    
    // 检查参数
    if (!username || !password || password.length < 6) {
      return {
        code: -1,
        message: '用户名和密码不能为空，密码长度不能小于6位'
      }
    }
    
    // 密码加密存储
    const passwordHash = crypto.createHash('md5').update(password).digest('hex')
    
    // 创建超级管理员账户
    const result = await db.collection('admins').add({
      data: {
        username: username,
        password: passwordHash,
        role: 'superadmin', // 超级管理员角色
        status: 1, // 1表示启用
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      }
    })
    
    return {
      code: 0,
      data: {
        adminId: result._id
      },
      message: '初始化管理员账户成功'
    }
  } catch (err) {
    return {
      code: -1,
      message: '初始化失败: ' + err.message
    }
  }
} 